package com.huizu.project.mapper;

import java.math.BigDecimal;
import java.util.List;
import com.huizu.project.domain.ProUser;
import org.apache.ibatis.annotations.Param;

/**
 * 用户管理Mapper接口
 * 
 * @author zhangmx
 * @date 2024-05-10
 */
public interface ProUserMapper 
{
    /**
     * 查询用户管理
     * 
     * @param userId 用户管理主键
     * @return 用户管理
     */
    public ProUser selectProUserByUserId(String userId);

    public ProUser selectProUserByStNumber(String stNumber);

    public ProUser selectProUserByPhone(String phone);

    ProUser selectProUserByOpenId(String openId);
    /**
     * 查询用户管理列表
     * 
     * @param proUser 用户管理
     * @return 用户管理集合
     */
    public List<ProUser> selectProUserList(ProUser proUser);

    /**
     * 新增用户管理
     * 
     * @param proUser 用户管理
     * @return 结果
     */
    public int insertProUser(ProUser proUser);

    /**
     * 修改用户管理
     * 
     * @param proUser 用户管理
     * @return 结果
     */
    public int updateProUser(ProUser proUser);

    int updateOpenId(@Param("openId") String openId,@Param("userId") String userId);

    /**
     * 删除用户管理
     * 
     * @param userId 用户管理主键
     * @return 结果
     */
    public int deleteProUserByUserId(String userId);

    /**
     * 批量删除用户管理
     * 
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProUserByUserIds(String[] userIds);

    Integer getRankByXyLl(@Param("xyId") String xyId,@Param("userLlPoints") Integer userLlPoints);

    Integer getRankByZyLl(@Param("zyId") String xyId,@Param("userLlPoints") Integer userLlPoints);

    Integer getRankByNjLl(@Param("njId") String xyId,@Param("userLlPoints") Integer userLlPoints);

    Integer getRankByBjLl(@Param("bjId") String xyId,@Param("userLlPoints") Integer userLlPoints);

    Integer getRankByXyLd(@Param("xyId") String xyId,@Param("userLdCj") BigDecimal userLdCj);
    Integer getRankByZyLd(@Param("zyId") String xyId,@Param("userLdCj") BigDecimal userLdCj);
    Integer getRankByNjLd(@Param("njId") String xyId,@Param("userLdCj") BigDecimal userLdCj);
    Integer getRankByBjLd(@Param("bjId") String xyId,@Param("userLdCj") BigDecimal userLdCj);






    int getRankByXyCj(@Param("xyId") String xyId,@Param("userCj") BigDecimal userCj);
    int getRankByZyCj(@Param("zyId") String xyId,@Param("userCj") BigDecimal userCj);
    int getRankByNjCj(@Param("njId") String xyId,@Param("userCj") BigDecimal userCj);
    int getRankByBjCj(@Param("bjId") String xyId,@Param("userCj") BigDecimal userCj);

    /**
     * 查询用户的成绩
     *
     * @return 成绩信息
     */
    List<ProUser> selectRank(@Param("xyId") String xyId);

    List<ProUser> selectProUserByNumberNotUserId(@Param("stNumber") String stNumber,@Param("userId") String userId);

    /**
     * 一次性查询 学院id、年级id、专业id、班级id
     * @param bmbh
     * @param zybh
     * @param bjbh
     * @return
     */
    ProUser selectXyIdNjIdZyIdBjId(@Param("bmbh") String bmbh, @Param("zybh") String zybh, @Param("bjbh") String bjbh);

    List<ProUser> selectPhoneAndUniversityId();

    int relieveBinding(ProUser proUser);
}
